// app.js
App({
  onLaunch() {
    // 展示本地存储能力
    const logs = wx.getStorageSync('logs') || []
    logs.unshift(Date.now())
    wx.setStorageSync('logs', logs)

    // 登录
    this.login()
  },
  
  // 登录方法
  login() {
    // 调用wx.login获取code
    wx.login({
      success: res => {
        if (res.code) {
          // 获取到code，发送到后端获取状态
          this.checkLoginStatus(res.code)
        } else {
          console.error('登录失败', res.errMsg)
          wx.showToast({
            title: '登录失败，请重试',
            icon: 'none'
          })
        }
      },
      fail: err => {
        console.error('wx.login调用失败', err)
        wx.showToast({
          title: '登录失败，请重试',
          icon: 'none'
        })
      }
    })
  },
  
  // 检查登录状态
  checkLoginStatus(code) {
    const token = wx.getStorageSync('token')
    
    if (token) {
      this.globalData.token = token
      this.globalData.isLogin = true
    } else {
      wx.request({
        url: this.globalData.baseUrl + '/student/state',
        method: 'GET',
        data: {
          code: code
        },
        success: (res) => {
          console.log('获取用户状态成功', res.data)
          
          if (res.data.code === 0 && res.data.data) {
            // 保存状态到全局数据
            this.globalData.loginState = res.data.data.state
            
            if (res.data.data.openid) {
              // 保存openid到全局数据
              this.globalData.openid = res.data.data.openid
            }
            
            if (res.data.data.state === 0) {
              // 新用户，跳转到学号密码登录页面
              wx.navigateTo({
                url: '/pages/login/login'
              })
            } else if (res.data.data.state === 1) {
              // 老用户，跳转到一键登录页面
              wx.navigateTo({
                url: '/pages/quickLogin/quickLogin'
              })
            }
          } else {
            wx.showToast({
              title: '获取用户状态失败',
              icon: 'none'
            })
          }
        },
        fail: (err) => {
          console.error('获取用户状态失败', err)
          wx.showToast({
            title: '网络错误，请重试',
            icon: 'none'
          })
        }
      })
    }
  },
  
  globalData: {
    userInfo: null,
    token: '',
    isLogin: false,
    openid: '', // 保存用户的openid
    loginState: null, // 保存登录状态
    baseUrl: 'http://localhost:8080'
  }
})
